array set lang { ### тут элементы массива } # открываем файл set fl [open $argv r] set a [read $fl] close $fl foreach n [array names lang] { # здесь получаем {\$lang\(name\)} или {\$::lang\(name\)} set rep \{\\\$(::)*lang\\($n\\)\} # замена - применяем eval чтобы подменить регулярку значением переменной # экранируем все что не нужно менять - получаем что-то типа: # set a [regsub -all {\$lang\(name\)} $a "$lang(name)"] set a [eval "regsub -all $rep \$a \"$lang($n)\""] } # пишем результат set wr [open $argv w] puts $wr $a close $wr
Создано: 16-09-2009 08:48:10
Метки: tcl